This invention pertains to memory cells, and more particularly a circuit for use in an integrated circuit including EPROM devices which allow the formation of an electrically programmable register.
Semiconductor memory devices are well known in the prior art. In many applications, it is desirable to provide a memory device which is non-volatile, i.e., which will not lose the contents of its memory when power is removed, but which can be erased and rewritten as desired. Toward this end, erasable programmable read only memories (EPROMs) and electrically erasable programmable read only memories (EEPROMs) have been employed in a wide variety of circuits, including, for example, stand alone memory chips and memory locations within microprocessors and microcontrollers.
EPROMs work by means of a floating gate which is located beneath a control gate. Ultraviolet light is used to erase the floating gate, by giving electrons stored on the floating gate sufficient energy to join the conduction band in the insulating oxide, where upon they leak off to the channel or substrate of the device. Programming is achieved by raising the control gate to a high voltage (typically 11 to 24 volts, depending on the process used to fabricate the EPROM), and the drain to another high voltage (typically 7 to 24 volts). Hot electrons are generated in the channel, some of which become stored on the floating gate, thereby increasing the control gate threshold voltage. An unprogrammed EPROM cell can not be turned on by a normal 5 volt read signal applied to its control gate, while an unprogrammed EPROM cell can be turned on by a 5 volt read signal.
One major disadvantage of EPROMs is that all bits within an array must be erased simultaneously, by the application of ultraviolet light.
This is in contrast with EEPROMs in which individual bits, words, or banks of bits may be electrically erased without effecting the remaining bits in the array. EEPROMs utilize Fowler-Nordheim tunneling to add or remove electrons to the floating gate through a thin tunneling oxide near the drain. This quantum mechanical tunneling is achieved in response to a high electric field between the control gate and the drain during the programming and erase steps. EEPROMs are described, for example, in "a 16K E.sup.2 PROM Employing a New Array Architecture and Designed-in Reliability Features", Yaron et al., IEEE Journal of Solid-State Circuits, Vol. SC-17, No. 5, October 1982, pp. 833-840. One difficulty with EPROMs is that, since they are optimized to provide hot carrier injection for programming and erasure, they tend to be somewhat susceptible to inadvertent programming and erasure by the same mechanism.
Heretofore, a manufacturer will select either one of EPROM or EEPROM processes and circuitry for use in a particular device. While EPROM technology is relatively simple from a processing point of view, and therefore less expensive than EEPROM technology, the use of EPROM technology requires that all bits be simultaneously erased utilizing ultraviolet radiation if the contents of any single bit is to be altered. Conversely, while EEPROM technology allows individual bits to be altered, it is a significantly more complex and expensive process.
It is often desirable to have configuration registers within an integrated circuit, allowing the user to specify various alternative modes of operation. Such data is preferably capable of being written by the user, thereby allowing the manufacturer to produce a large number of "generic" devices which are then specifically tailored by end users by programming data into the configuration registers. In many instances, it is important that this configuration information be available at 11 times, and thus it is not suitable for storage as data contained within the memory array.
Accordingly, there remains the need for providing a low cost memory device which is programmable and provides its data at all times. It is particularly desirable to provide such non-volatile data without the need for a clock, in order that the data can serve as a security bit or bits for use in programming the memory cells in a typical programmable device which operates asynchronously.